Wireless communication devices and/or systems may utilize methods of determining a location of a mobile device and/or proximity between two or more mobile devices. For example, a social-application may utilize proximity between two or more mobile devices, e.g., to provide proximity-based information and/or communications to the users of the devices.
The location of the mobile device may be determined based on a Global-Positioning-System (GPS) signal. However, in some situations, e.g., when the mobile device is at an indoor location, the GPS signal may not be available and/or accurate.
In one method, a last location of the device according to the GPS signal may be used. However, this method may provide a relatively low level of accuracy, e.g., an accuracy of about 300 to 1000 meters.
In another method, a fingerprint database may be prepared based on a predetermined “fingerprint”, which is measured throughout many locations within a predefined premises. The fingerprint at each location may include a list of one or more signal strengths, e.g., one or more Received Signal Strength Indicators (RSSI), as measured at the location at the time of measurement, associated with one or more respective Access Points (APs), e.g., represented by respective a Transmit (Tx) Media-Access-Control (MAC) address of the AP. However, this method may not be efficiently scalable, and may require the process of manually measuring the fingerprints at many locations and the overhead of storing and/or managing the fingerprint database. Additionally, the accuracy of this method may be affected by real-time changes in the configuration and/or location of one or more of the APs. For example, if after the fingerprint database is established, one or more APs is temporarily and/or permanently removed, relocated and/or modifies the transmission power and, accordingly, the actual fingerprint, e.g., as measured by a mobile device in real-time, at one or more locations, may be different from the pre-stored fingerprint of the location in the fingerprint database. As a result, an erroneous location of the mobile device may be determined.